package com.xiaoshuidi.cloud.module.finance.controller.admin.merchant.vo.app;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * 支付应用信息 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class PayAppBaseVO {

    /**
     * 应用名
     */
    @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "应用名不能为空")
    private String name;

    /**
     * 开启状态
     */
    @Schema(description = "开启状态", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "开启状态不能为空")
    private Integer status;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 支付结果的回调地址
     */
    @Schema(description = "支付结果的回调地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "支付结果的回调地址不能为空")
    private String payNotifyUrl;

    /**
     * 退款结果的回调地址
     */
    @Schema(description = "退款结果的回调地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "退款结果的回调地址不能为空")
    private String refundNotifyUrl;

    /**
     * 商户编号
     */
    @Schema(description = "商户编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "商户编号不能为空")
    private Long merchantId;

    @Schema(description = "商户名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "商户名称不能为空")
    private String merchantName;

}
